1. Field of the Invention
The invention relates generally to fuses in integrated circuits (IC's) and more particularly to systems and methods to control the current used to program a component or set of components used to persistently store data in an IC.
2. Related Art
It is sometimes necessary to maintain some device specific information for a device such as integrated circuit (IC). It is convenient if not necessary to store this information in the IC itself. In order to do this, some part of the circuitry must act as a persistent storage. One solution is to incorporate into the circuitry a set of components and encode the desired information by programming it into the components. There are various trade-offs in the choice of components for this task, such as size, ease of programming, persistence, etc.
One conventional method is to incorporate fuses, such as laser fuses, into a device. These fuses are programmed by evaporating the fuses' metal links. In other words, the fuses are “cut”. The programmed information is then read by determining which of the fuses have been cut and which have not. Cut fuses may, for example, be interpreted as 0's, while uncut fuses may be interpreted as 1's. The programming is permanent.
The opportunities to program laser fuses are limited to a small window of time in the manufacturing process when the fuses are exposed. An additional limitation is the minimum size of such fuses related to the wavelength of the laser. The wavelength of the laser is typically large relative to the feature size of contemporary IC's, making it difficult to cut the fuses without damaging nearby circuitry.
An alternative to laser fuses is electrically programmable fuses such as Ti-Silicide or other metal-silicide fuses. These (and fuses of similar construction) may also be referred to as poly fuses or eFuses. An eFuse is programmed by passing a large current through the fuse to “cut” it. The mechanism underlying the programming of an (metal-silicide) eFuse is based on the agglomeration of the material of a silicide layer in the fuse. The agglomeration occurs when the current density (and temperature) are sufficient to bring about an appropriate degree of electromigration.
eFuses are smaller and more readily programmed than laser fuses. An eFuse can be programmed at a more convenient stage in the manufacturing process, or at some time well after manufacturing. Also, the potential for collateral damage is decreased (with proper programming).
As noted above, eFuses are programmed using an agglomeration based on electromigration. Electromigration is the mass transport caused by the (gradual) migration of the ions in a conductor due to the momentum exchange between moving (conducting) electrons and nearby diffusing metal atoms (ions). Over a period of time a sufficient number of atoms are forced far from their original positions, and gaps (voids) are created, restricting or preventing conduction. Agglomeration refers to the piling up of the migrating atoms.
Normally, electromigration does not occur in semiconductors, but instead occurs in an IC's metal interconnects. Designers have taken advantage of this effect by constructing fuse components out of appropriately affected materials such as Ti-Silicide, which can then be subjected to high currents/voltages to program the fuses. However, when the current is too large or is applied for too long, the fuse can be damaged or even destroyed. Other problems may arise. For example, in some cases, a short circuit can occur in nearby components.
An eFuse, both in its unprogrammed, unaltered (i.e., uncut) state and properly programmed (i.e., cut) state, carries a current and has an impedance in a specified range. If the fuse is programmed with current that is too high, and the fuse is damaged or even destroyed, it may have an impedance that is well outside the desired range(s). There is also the potential for collateral damage to nearby components in the device.
Therefore, the selection and application of the appropriate programming current is important. A conventional programming circuit can apply only a single current in the programming of a fuse. Unfortunately, this current can vary. Environmental factors, variations in the manufacture of the integrated circuits, and other factors can contribute to variations in the current that is used to program the fuses. It would therefore be desirable to provide systems and methods to automatically determine and apply the appropriate programming current.